<?php
defined( '_JEXEC' ) or die;

jimport('joomla.application.component.modellist');

class PricerUpdaterModelUpdate extends JModelList {

	protected $msg;
	protected $devMode = true;

	public function getMsg() {
		return $this->msg;
	}

	protected function addMsg($msg) {
		$this->msg .= $msg."<br/>\n";
	}

	public function update($ids) {

		// Инициализируем переменные
		$db =& JFactory::getDBO();

		// Проходим по выбранным дистрибьюторам
		foreach ($ids as $i => $id) {

			// Получаем всю необходимую информацию о загрузчике
			$query = "SELECT `id`, `alias`, `file`, `class` FROM `#__pricer_robot` WHERE `#__pricer_robot`.`id` = $id;";
			$db->setQuery($query);
			$updater = $db->loadObject();

			// Обрабатываем информацию о загрузчике
			$updater->alias = utf8_strtolower($updater->alias);
			$updater->file = dirname(__FILE__).DS.$updater->file;

			// Определяем, существует ли файл загрузчика
			if (true == JFile::exists($updater->file)) {
				require_once $updater->file;
			} else {
				$this->addMsg("{$i}. Файл загрузчика {$updater->alias} не существует.");
				continue;
			}

			// Создаем класс загрузчика
			if (true == $updater->class) {
				$updater = new $updater->class;
			} else {
				$this->addMsg("Класс загрузчика {$updater->alias} не указан.");
				continue;
			}

			if (true == $updater->ok) {
				$updater->update($id);
				$this->msg .= $updater->getMsg();
			} else {
				$this->addMsg("Загрузчик {$updater->alias} не готов.");
				continue;
			}

		}
		return true;
	}

}
